package priv.pattern.visitorpattern;

import priv.pattern.visitorpattern.service.impl.Cat;
import priv.pattern.visitorpattern.service.impl.Dog;
import priv.pattern.visitorpattern.service.impl.Owner;
import priv.pattern.visitorpattern.service.impl.SomeOne;

/*
 * 作者：m鹏h
 * 时间；2024/8/11 0:53
 * 描述：访问者模式  客户端
 **/
public class VisitorPatternTest {


 //访问者模式：它用于将数据结构和在数据结构上的操作分离开来。访问者模式可以让你在不修改数据结构的情况下，定义新的操作。
 public static void main(String[] args) {
  //创建 Home 对象
  Home home = new Home();
  //添加元素到 Home 对象中
  home.add(new Dog());
  home.add(new Cat());

  //创建主人对象
  Owner owner = new Owner();
  //让主人喂食所有的宠物
  home.action(owner);

  System.out.println("===============");

  //创建其他人对象
  SomeOne someOne = new SomeOne();
  //让其他人喂食所有的宠物
  home.action(someOne);
 }
}
